package com.xmy.erp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 订单
 * </p>
 *
 * @author hpiggy
 * @since 2023-09-09
 */
@TableName("order_apply")
@ApiModel(value = "OrderApply对象", description = "订单")
public class OrderApply implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("订单号，转课的order_no相同")
    private String orderNo;

    @ApiModelProperty("收据编号")
    private String receiptNo;

    @ApiModelProperty("应收金额")
    private BigDecimal price;

    @ApiModelProperty("实收金额")
    private BigDecimal solidPrice;

    @ApiModelProperty("欠费金额")
    private BigDecimal ownPrice;

    @ApiModelProperty("是否欠费:1是，0否，被费后要把这个状态改为0")
    private Integer isOwn;

    @ApiModelProperty("优惠金额")
    private BigDecimal disPrice;

    @ApiModelProperty("费用类型，1收入，2支出")
    private Integer costType;

    @ApiModelProperty("转课抵扣金额")
    private BigDecimal transferPrice;

    @ApiModelProperty("学生id")
    private Long studentId;

    @ApiModelProperty("所属校区")
    private Long schoolId;

    @ApiModelProperty("年份")
    private Integer yearPart;

    @ApiModelProperty("学期")
    private Integer quarterNum;

    @ApiModelProperty("经办校区id")
    private Long handleSchoolId;

    @ApiModelProperty("经办校区名")
    private String handleSchoolName;

    @ApiModelProperty("经办日期")
    private LocalDate handleDate;

    @ApiModelProperty("经办人")
    private Long handlePersonId;

    @ApiModelProperty("经办人姓名")
    private String handlePersonName;

    @ApiModelProperty("办理优惠日期")
    private LocalDate discountsDate;

    @ApiModelProperty("状态：0无，1确认到账，2订单作废")
    private Integer status;

    @ApiModelProperty("确认状态，0未确认，1校长确认，2会计确认，3财务")
    private Integer affirmType;

    @ApiModelProperty("0无，1收款人确认到帐，2财务确认到帐")
    private Integer arriveAffirm;

    @ApiModelProperty("校长确认时间")
    private LocalDateTime principalDate;

    @ApiModelProperty("财务确认时间")
    private LocalDateTime financeDate;

    @ApiModelProperty("创建人")
    private Long createdId;

    @ApiModelProperty("订单类型：1报名，2补费，3转课，4退费，5转校")
    private Integer orderType;

    @ApiModelProperty("转校：退费，退费单为5")
    private Integer applyType;

    @ApiModelProperty("此字段作废")
    private Long pid;

    @ApiModelProperty("交易详情,如：八年级英语【夏季班】，2500元(30课时)*1=2500元，学费优惠100元	人工智能课/口语课，99元(15课时)*1=99元")
    private String tradeContent;

    private Integer version;

    @ApiModelProperty("报名类型：1线下报名，2线上报名")
    private Integer signType;

    private Integer deleted;

    @ApiModelProperty("created_at")
    private LocalDateTime createdAt;

    @ApiModelProperty("updated_at")
    private LocalDateTime updatedAt;

    @ApiModelProperty("deleted_at")
    private LocalDateTime deletedAt;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
    public String getReceiptNo() {
        return receiptNo;
    }

    public void setReceiptNo(String receiptNo) {
        this.receiptNo = receiptNo;
    }
    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }
    public BigDecimal getSolidPrice() {
        return solidPrice;
    }

    public void setSolidPrice(BigDecimal solidPrice) {
        this.solidPrice = solidPrice;
    }
    public BigDecimal getOwnPrice() {
        return ownPrice;
    }

    public void setOwnPrice(BigDecimal ownPrice) {
        this.ownPrice = ownPrice;
    }
    public Integer getIsOwn() {
        return isOwn;
    }

    public void setIsOwn(Integer isOwn) {
        this.isOwn = isOwn;
    }
    public BigDecimal getDisPrice() {
        return disPrice;
    }

    public void setDisPrice(BigDecimal disPrice) {
        this.disPrice = disPrice;
    }
    public Integer getCostType() {
        return costType;
    }

    public void setCostType(Integer costType) {
        this.costType = costType;
    }
    public BigDecimal getTransferPrice() {
        return transferPrice;
    }

    public void setTransferPrice(BigDecimal transferPrice) {
        this.transferPrice = transferPrice;
    }
    public Long getStudentId() {
        return studentId;
    }

    public void setStudentId(Long studentId) {
        this.studentId = studentId;
    }
    public Long getSchoolId() {
        return schoolId;
    }

    public void setSchoolId(Long schoolId) {
        this.schoolId = schoolId;
    }
    public Integer getYearPart() {
        return yearPart;
    }

    public void setYearPart(Integer yearPart) {
        this.yearPart = yearPart;
    }
    public Integer getQuarterNum() {
        return quarterNum;
    }

    public void setQuarterNum(Integer quarterNum) {
        this.quarterNum = quarterNum;
    }
    public Long getHandleSchoolId() {
        return handleSchoolId;
    }

    public void setHandleSchoolId(Long handleSchoolId) {
        this.handleSchoolId = handleSchoolId;
    }
    public String getHandleSchoolName() {
        return handleSchoolName;
    }

    public void setHandleSchoolName(String handleSchoolName) {
        this.handleSchoolName = handleSchoolName;
    }
    public LocalDate getHandleDate() {
        return handleDate;
    }

    public void setHandleDate(LocalDate handleDate) {
        this.handleDate = handleDate;
    }
    public Long getHandlePersonId() {
        return handlePersonId;
    }

    public void setHandlePersonId(Long handlePersonId) {
        this.handlePersonId = handlePersonId;
    }
    public String getHandlePersonName() {
        return handlePersonName;
    }

    public void setHandlePersonName(String handlePersonName) {
        this.handlePersonName = handlePersonName;
    }
    public LocalDate getDiscountsDate() {
        return discountsDate;
    }

    public void setDiscountsDate(LocalDate discountsDate) {
        this.discountsDate = discountsDate;
    }
    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }
    public Integer getAffirmType() {
        return affirmType;
    }

    public void setAffirmType(Integer affirmType) {
        this.affirmType = affirmType;
    }
    public Integer getArriveAffirm() {
        return arriveAffirm;
    }

    public void setArriveAffirm(Integer arriveAffirm) {
        this.arriveAffirm = arriveAffirm;
    }
    public LocalDateTime getPrincipalDate() {
        return principalDate;
    }

    public void setPrincipalDate(LocalDateTime principalDate) {
        this.principalDate = principalDate;
    }
    public LocalDateTime getFinanceDate() {
        return financeDate;
    }

    public void setFinanceDate(LocalDateTime financeDate) {
        this.financeDate = financeDate;
    }
    public Long getCreatedId() {
        return createdId;
    }

    public void setCreatedId(Long createdId) {
        this.createdId = createdId;
    }
    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }
    public Integer getApplyType() {
        return applyType;
    }

    public void setApplyType(Integer applyType) {
        this.applyType = applyType;
    }
    public Long getPid() {
        return pid;
    }

    public void setPid(Long pid) {
        this.pid = pid;
    }
    public String getTradeContent() {
        return tradeContent;
    }

    public void setTradeContent(String tradeContent) {
        this.tradeContent = tradeContent;
    }
    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }
    public Integer getSignType() {
        return signType;
    }

    public void setSignType(Integer signType) {
        this.signType = signType;
    }
    public Integer getDeleted() {
        return deleted;
    }

    public void setDeleted(Integer deleted) {
        this.deleted = deleted;
    }
    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }
    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }
    public LocalDateTime getDeletedAt() {
        return deletedAt;
    }

    public void setDeletedAt(LocalDateTime deletedAt) {
        this.deletedAt = deletedAt;
    }

    @Override
    public String toString() {
        return "OrderApply{" +
            "id=" + id +
            ", orderNo=" + orderNo +
            ", receiptNo=" + receiptNo +
            ", price=" + price +
            ", solidPrice=" + solidPrice +
            ", ownPrice=" + ownPrice +
            ", isOwn=" + isOwn +
            ", disPrice=" + disPrice +
            ", costType=" + costType +
            ", transferPrice=" + transferPrice +
            ", studentId=" + studentId +
            ", schoolId=" + schoolId +
            ", yearPart=" + yearPart +
            ", quarterNum=" + quarterNum +
            ", handleSchoolId=" + handleSchoolId +
            ", handleSchoolName=" + handleSchoolName +
            ", handleDate=" + handleDate +
            ", handlePersonId=" + handlePersonId +
            ", handlePersonName=" + handlePersonName +
            ", discountsDate=" + discountsDate +
            ", status=" + status +
            ", affirmType=" + affirmType +
            ", arriveAffirm=" + arriveAffirm +
            ", principalDate=" + principalDate +
            ", financeDate=" + financeDate +
            ", createdId=" + createdId +
            ", orderType=" + orderType +
            ", applyType=" + applyType +
            ", pid=" + pid +
            ", tradeContent=" + tradeContent +
            ", version=" + version +
            ", signType=" + signType +
            ", deleted=" + deleted +
            ", createdAt=" + createdAt +
            ", updatedAt=" + updatedAt +
            ", deletedAt=" + deletedAt +
        "}";
    }
}
